#define _CRT_SECURE_NO_WARNINGS 1
#include"Contact.h"
#include"SeqList.h"

void ConInit(Contact* con) {
	assert(con);

	SLinit(con);
}

void Condes(Contact* con) {

	SLdes(con);
}

void ConAdd(Contact* con) {
	perinfo info;
	printf("请输入要添加的姓名：");
	scanf("%s", info.name);
	printf("请输入要添加的性别：");
	scanf("%s", info.gender);
	printf("请输入要添加的年龄：");
	scanf("%d", &info.age);
	printf("请输入要添加的电话：");
	scanf("%s", info.tel);
	printf("请输入要添加的地址：");
	scanf("%s", info.addr);

	printf("添加成功\n");
	SLpushback(con, info);
}

int FindByName(Contact* con, char name[]) {
	assert(con);


	for (int i = 0; i < con->size; i++) {
		if (0 == strcmp(con->arr[i].name, name))
			return i;
	}
	return -1;
}

void Condel(Contact* con) {
	assert(con);

	char name[NAME_MAX];
	printf("请输入要删除的联系人姓名:\n");
	scanf("%s", name);

	int find = FindByName(con, name);
	if (find < 0) {
		printf("要删的联系人不存在");
		return;
	}
	SLErase(con, find);
	printf("删除成功\n");
	return;
}

void Conshow(Contact* con) {
	assert(con);

	printf("%s %s %s %s %s\n", "姓名", "性别", "年龄", "电话", "地址");
	for (int i = 0; i < con->size; i++) {
		printf("%s %s %d %s %s\n",
			con->arr[i].name,
			con->arr[i].gender,
			con->arr[i].age,
			con->arr[i].tel,
			con->arr[i].addr);
	}
}

void ConMod(Contact* con) {
	assert(con);

	char name[NAME_MAX];
	printf("%s", "请输入要修改的联系人");
	scanf("%s", name);
	perinfo info;

	int find = FindByName(con, name);
	printf("请输入新的姓名：");
	scanf("%s", con->arr[find].name);
	printf("请输入新的性别：");
	scanf("%s", con->arr[find].gender);
	printf("请输入新的年龄：");
	scanf("%d", &con->arr[find].age);
	printf("请输入新的电话：");
	scanf("%s", con->arr[find].tel);
	printf("请输入新的地址：");
	scanf("%s", con->arr[find].addr);

	printf("修改成功\n");
}

void ConFind(Contact* con) {
	assert(con);

	char name[NAME_MAX];
	printf("输入查找的联系人姓名");
	scanf("%s", name);
	int find = FindByName(con, name);
	if (find < 0) {
		printf("联系人不存在\n");	
		return -1;
	}
	printf("%s %s %s %s %s\n", "姓名", "性别", "年龄", "电话", "地址");
	printf("%s %s %d %s %s\n",
		con->arr[find].name,
		con->arr[find].gender,
		con->arr[find].age,
		con->arr[find].tel,
		con->arr[find].addr
	);

}